<?php
class MapaBSN extends GenericBSN {

	function __construct() {
		$this->dao = new MapaDAO();		
	}

	public function consultar($vars) {
		$this->preencher($vars);
		$this->Records = $this->dao->consultar($this->where, $this->params, $this->order . $this->limit);
		$this->Result  = "OK";
	}
	
	public function consultarPK($vars) {
		$this->Records = $this->dao->consultarPK($vars['id']);
		$this->Result = "OK";
	}
	
	public function relatorio() {
		$where = "";
		$params = array();
		$this->Records = $this->dao->consultar($where, $params, "order by sq_nome, q_codigo");
		$this->Result = "OK";
	}
	
	public function obterMapa() {
		$aux['dim'] 	= $this->dao->obterDimensoes();
		$aux['lotes'] 	= $this->dao->obterLotes(); 
		
		$this->Records = $aux;
		$this->Result = "OK";
	}

	public function importar() {
		set_time_limit(0);
		$fonte 		= file("mapa.csv");
		$recs		= null;
		$quadraDAO	= new QuadraDAO();
		
		try {
			foreach($fonte as $num => $linha) {
				$reg 	= explode(",", $linha);

				for ($i = 0; $i < count($reg); $i++) {
					$reg[$i] = substr($reg[$i], strpos($reg[$i], '"') + 1);
					$reg[$i] = str_replace('"', "", $reg[$i]);
				}
				
				$quadra = $quadraDAO->consultarSQQ($reg[0], $reg[1]);
				if (!isset($quadra[0])) {
					throw new Exception("Quadra não encontrada: " . $reg[0] . " - " . $reg[1]);
				}
				
				$mapa = $this->dao->consultarQuadra($quadra[0]['id']);
				if (!isset($mapa[0])) {
					throw new Exception("Mapa não encontrado para a quadra: " . $quadra[0]['id']);
				}
				
				$novomapa['id'] = $mapa[0]['id'];
				$novomapa['vendidos'] = $reg[2];
				$novomapa['ocupados'] = $reg[3];
				$novomapa['avenda'] = $mapa[0]['construidos'] - $mapa[0]['vendidos'];
				
				if ($this->dao->alterar($novomapa, false)) {
					$recs[] = $novomapa;
				}
			}
			$this->dao->commit();
			$this->Result  = "OK";
			$this->Records = $recs;
			$this->Message = "Importação concluída com sucesso!";
		} catch (Exception $e) {
			$this->dao->rollback();
			$this->Result  = "ERROR";
			$this->Records = $recs;
			$this->Message = "Erro ao importar registros de vendas: " . $e->getMessage();
		}
	}
}
?>